const redis = require('redis')
const db = redis.createClient();

class Entry {
    constructor(obj) {
            for (let key in obj) {
                this[key] = obj[key];
            }
        }
        // 获取消息记录得Redis lrange函数 解码之前保存为JSON得消息记录
    static getRange(from, to, cb) {
            db.lrange('entries', from, to, (err, items) => {
                if (err) return cb(err);
                let entries = [];
                items.forEach((item) => {
                    entries.push(JSON.parse(item));
                })
                cb(null, entries);
            })
        }
        // 将保存得消息转为JSON字符串存到Redis列表中
    save(cb) {
        const entryJSON = JSON.stringify(this);
        db.lpush('entries', entryJSON, (err) => {
            if (err) return cb(err);
            cb();
        })
    }
}

module.exports = Entry;